﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Capa_Entidad;
namespace Acceso_Datos.Clases_DAO
{
    public class clsPrm_Programacion_MedicaDAO
    {

        private BDClinicaEntities ContextoDeObjs = new BDClinicaEntities();
        public bool Insertar(PRM_PROGRAMACION_MEDICA Obj)
        {
            try
            {
                ContextoDeObjs.AddObject("PRM_PROGRAMACION_MEDICA", Obj);
                ContextoDeObjs.SaveChanges();
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }
        public bool Modificar(PRM_PROGRAMACION_MEDICA obj)
        {

            try
            {
                ContextoDeObjs.AttachTo("PRM_PROGRAMACION_MEDICA", obj);
                ContextoDeObjs.ObjectStateManager.ChangeObjectState(obj, System.Data.EntityState.Modified);
                ContextoDeObjs.SaveChanges();
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }
        public bool Eliminar(PRM_PROGRAMACION_MEDICA obj)
        {
            try
            {
                ContextoDeObjs.AttachTo("PRM_PROGRAMACION_MEDICA", obj);
                ContextoDeObjs.DeleteObject(obj);
                ContextoDeObjs.SaveChanges();
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }
        public List<PRM_PROGRAMACION_MEDICA> listar()
        {
            List<PRM_PROGRAMACION_MEDICA> lista = new List<PRM_PROGRAMACION_MEDICA>();
            var q = from c in ContextoDeObjs.PRM_PROGRAMACION_MEDICA
                    select c;
            lista = q.ToList();
            return lista;
        }
        public List<V_Detalle_Programacion_Medica> listar_Detalle()
        {
            //List<V_Detalle_Programacion_Medica> lista = new List<V_Detalle_Programacion_Medica>();
            //var q = from c in ContextoDeObjs.V_Detalle_Programacion_Medica
            //        select c;
            //lista = q.ToList();

            var proc = ContextoDeObjs.ExecuteStoreQuery<V_Detalle_Programacion_Medica>("EXEC Usp_Detalle_Programacion_Medica").AsQueryable().ToList();

            return proc;
            
        }
        public string UltimoNumero()
        {
            var max="";
            try
            {
                var consulta = (from p in ContextoDeObjs.PRM_PROGRAMACION_MEDICA
                               orderby p.PRM_ID_PROGRAMACION descending
                               select p).FirstOrDefault();
                if (consulta != null)
                {
                    max = consulta.PRM_ID_PROGRAMACION.Trim();
                }
                else
                {
                    max = "";
                }

                return max;
            }
            catch (Exception)
            {
                return max;
            }
        }
    }
}
